
package com.x52im.rbchat.logic.chat_friend.utils;

import android.content.Context;

import com.x52im.rainbowchat.common.dto.cnst.UserProtocalsType;
import com.x52im.rbchat.network.im.SendDataHelper;

/**
 * 一对一好友实时语音聊天相关消息/指令的发送和解析方法。
 */
public class RealTimeVoiceMessageHelper
{
	/**
	 * 实时语音聊天：结束本次实时语音聊天 .
	 * 
	 * @param context
	 * @param to_user_id 要接收指令的目标好友
	 * @return 0 表示指令发送成功，否则返回的是错误码
	 * @throws Exception
	 */
	public static int sendVideoAndVoice$EndChatting_from$a(Context context
			, String to_user_id, String localUserUid)
	{
		// 消息格式是：“通知消息头+本地用户uid”
		// ，形如："子协议头+[数据传输对象JSON文本]
		return SendDataHelper.sendMessageImpl(context, to_user_id
				, localUserUid
				, true
				, UserProtocalsType.MT35_OF_REAL$TIME$VOICE_END$CHATTING);// 此消息需要质量保证
	}
	/**
	 * 解析实时语音聊天：结束本次实时语音聊天 .
	 * 
	 * @param originalMsg 包含指点协议头和内容本身的原始消息文本
	 * @return 对方的用户uid
	 */
	public static String pareseRealTimeVoice$EndChatting_from$a(String originalMsg)
	{
//		return originalMsg.substring(
//				MT30_OF_REAL$TIME$VOICE_END$CHATTING.length(), originalMsg.length());
		return originalMsg;
	}
	
	/**
	 * 实时语音聊天呼叫中：请求实时语音聊天(发起方A) .
	 * 
	 * @param context
	 * @param to_user_id 要接收指令的目标好友
	 * @return 0 表示指令发送成功，否则返回的是错误码
	 * @throws Exception
	 */
	public static int sendRealTimeVoiceRequest$Requestting_from$a(Context context
			, String to_user_id, String localUserUid, boolean forAnyChat, int local_user_id_anychat)
	{
		// 消息格式是：“通知消息头+本地用户uid”
		// ，形如："子协议头+[数据传输对象JSON文本]
		return SendDataHelper.sendMessageImpl(context, to_user_id
				, localUserUid
				, true
				, UserProtocalsType.MT31_OF_REAL$TIME$VOICE$REQUEST_REQUESTING$FROM$A);// 此消息需要质量保证
	}
	/**
	 * 解析实时语音聊天呼叫中：请求实时语音聊天(发起方A) .
	 * 
	 * @param originalMsg 包含指点协议头和内容本身的原始消息文本
	 * @return 对方的用户uid
	 */
	public static String pareseRealTimeVoiceRequest$Requestting_from$a(String originalMsg)
	{
		return originalMsg;
	}
	
	/**
	 * 实时语音聊天呼叫中：取消实时语音聊天请求(发起发A).
	 * 
	 * @param context
	 * @param to_user_id 要接收指令的目标好友
	 * @return 0 表示指令发送成功，否则返回的是错误码
	 * @throws Exception
	 */
	public static int sendVideoAndVoiceRequest$Abort_from$a(Context context
			, String to_user_id, String localUserUid)
	{
		// 消息格式是：“通知消息头+本地用户uid”
		// ，形如："子协议头+[数据传输对象JSON文本]
		return SendDataHelper.sendMessageImpl(context, to_user_id
				, localUserUid
				, true
				, UserProtocalsType.MT32_OF_REAL$TIME$VOICE$REQUEST_ABRORT$FROM$A);// 此消息需要质量保证
	}
	/**
	 * 解析实时语音聊天呼叫中：取消实时语音聊天请求(发起发A).
	 * 
	 * @param originalMsg 包含指点协议头和内容本身的原始消息文本
	 * @return 对方的用户uid
	 */
	public static String pareseRealTimeVoiceRequest$Abort_from$a(String originalMsg)
	{
		return originalMsg;
	}
	
	/**
	 * 实时语音聊天呼叫中：同意实时语音聊天请求(接收方B).
	 * 
	 * @param context
	 * @param to_user_id 要接收指令的目标好友
	 * @return 0 表示指令发送成功，否则返回的是错误码
	 * @throws Exception
	 */
	public static int sendVideoAndVoiceRequest$Accept_to$a(Context context
			, String to_user_id, String localUserUid, boolean forAnyChat, int local_user_id_anychat)
	{
		// 消息格式是：“通知消息头+本地用户uid”
		// ，形如："子协议头+[数据传输对象JSON文本]
		return SendDataHelper.sendMessageImpl(context, to_user_id
				, localUserUid
				, true
				, UserProtocalsType.MT33_OF_REAL$TIME$VOICE$REQUEST_ACCEPT$TO$A);// 此消息需要质量保证
	}
	/**
	 * 解析实时语音聊天呼叫中：同意实时语音聊天请求(接收方B).
	 * 
	 * @param originalMsg 包含指点协议头和内容本身的原始消息文本
	 * @return 对方的用户uid
	 */
	public static String pareseRealTimeVoiceRequest$Accept_to$a(String originalMsg)
	{
		return originalMsg;
	}
	
	/**
	 * 实时语音聊天呼叫中：拒绝实时语音聊天请求(接收方B).
	 * 
	 * @param context
	 * @param to_user_id 要接收指令的目标好友
	 * @return 0 表示指令发送成功，否则返回的是错误码
	 * @throws Exception
	 */
	public static int sendVideoAndVoiceRequest$Reject_to$a(Context context
			, String to_user_id, String localUserUid, boolean forAnyChat, int local_user_id_anychat)
	{
		// 消息格式是：“通知消息头+本地用户uid”
		// ，形如："__*#20#*__本地用户uid"
		return SendDataHelper.sendMessageImpl(context, to_user_id
				, localUserUid
				, true
				, UserProtocalsType.MT34_OF_REAL$TIME$VOICE$REQUEST_REJECT$TO$A);// 此消息需要质量保证
	}
	/**
	 * 解析实时语音聊天呼叫中：拒绝实时语音聊天请求(接收方B).
	 * 
	 * @param originalMsg 包含指点协议头和内容本身的原始消息文本
	 * @return 对方的用户uid
	 */
	public static String pareseRealTimeVoiceRequest$Reject_to$a(String originalMsg)
	{
		return originalMsg;
	}
}
